16 research outputs found

    Frenetic: A High-Level Language for OpenFlow Networks

    Full text link
    Network administrators must configure network devices to simultaneously provide several interrelated services such as routing, load balancing, traffic monitoring, and access control. Unfortunately, most interfaces for programming networks are defined at the low level of abstraction supported by the underlying hardware, leading to complicated programs with subtle bugs. We present Frenetic, a high-level language for OpenFlow networks that enables writing programs in a declarative and compositional style, with a simple "program like you see every packet" abstraction. Building on ideas from functional programming, Frenetic offers a rich pattern algebra for classifying packets into traffic streams and a suite of operators for transforming streams. The run-time system efficiently manages the low-level details of (un)installing packet-processing rules in the switches. We describe the design of Frenetic, an implementation on top of OpenFlow, and experiments and example programs that validate our design choices.Office of Naval Research grant N00014-09-1-0770 "Networks Opposing Botnets

    Programming Protocol-Independent Packet Processors

    Full text link
    P4 is a high-level language for programming protocol-independent packet processors. P4 works in conjunction with SDN control protocols like OpenFlow. In its current form, OpenFlow explicitly specifies protocol headers on which it operates. This set has grown from 12 to 41 fields in a few years, increasing the complexity of the specification while still not providing the flexibility to add new headers. In this paper we propose P4 as a strawman proposal for how OpenFlow should evolve in the future. We have three goals: (1) Reconfigurability in the field: Programmers should be able to change the way switches process packets once they are deployed. (2) Protocol independence: Switches should not be tied to any specific network protocols. (3) Target independence: Programmers should be able to describe packet-processing functionality independently of the specifics of the underlying hardware. As an example, we describe how to use P4 to configure a switch to add a new hierarchical label

    Performance Characterization of a Commercial Video Streaming Service

    No full text
    Despite the growing popularity of video streaming over the Internet, problems such as re-buffering and high startup latency continue to plague users. In this paper, we present an end-To-end characterization of Yahoo's video streaming service, analyzing over 500 million video chunks downloaded over a two-week period. We gain unique visibility into the causes of performance degradation by instrumenting both the CDN server and the client player at the chunk level, while also collecting frequent snapshots of TCP variables from the server network stack. We uncover a range of performance issues, including an asynchronous disk-read timer and cache misses at the server, high latency and latency variability in the network, and buffering delays and dropped frames at the client. Looking across chunks in the same session, or destined to the same IP prefix, we see how some performance problems are relatively persistent, depending on the video's popularity, the distance between the client and server, and the client's operating system, browser, and Flash runtime

    A Fair Leaky-Bucket Traffic Shaper for ATM Networks

    No full text
    ATM network performance hinges on user sessions, or virtual connections, adhering to the traffic contracts established by the admission control policy. This paper considers efficient mechanisms for enforcing these contracts by shaping the incoming cell streams. While shaping effectively accommodates variation in a connection's traffic flow, this smoothing function introduces implementation complexity, since the shaper must buffer violating cells and schedule them for later transmission. Conflicts arise when multiple cells, from different connections, become eligible for transmission at the same time. This paper presents a fair leaky-bucket (FLB) shaper that minimizes the traffic distortions caused by these cell collisions. A theorem shows that FLB shaping, based on weighted fair queueing , closely preserves connection leaky-bucket parameters and bounds cell shaping delay. The paper also presents an efficient implementation of self-clocked fair queueing , which reduces the complexity of..

    A Programmable Routing Controller for Flexible Communications in Point-to-Point Networks

    No full text
    Modern parallel and distributed applications have a wide range of communication characteristics and performance requirements. This paper presents the Programmable Routing Controller (PRC), a custom ASIC that supports flexible network policies to accommodate diverse application requirements. By dedicating a small programmable processor to each incoming link, the PRC can implement wormhole, virtual cut-through, and packet switching, as well as hybrid schemes, under a variety of unicast and multicast routing algorithms. The PRC can support several applications or traffic types simultaneously by implementing multiple routing-switching microcode routines. 1 Introduction In parallel and distributed systems, efficient communication enables fine-grained cooperation between processing nodes. Maximizing system performance requires matching application characteristics with a suitable network design. However, applications employ a wide variety of communication paradigms that affect the quantity..
    corecore